home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amoszine 3
/
Amoszine 3.adf
/
MORE_SOURCE
/
AJC-HOMING-ALIENS.AMOS
/
AJC-HOMING-ALIENS.amosSourceCode
Wrap
AMOS Source Code
|
1992-02-26
|
2KB
|
121 lines
'
' "HOMING ALIENS"
' By Andrew Campbell
'
' This is a basic example of how you could possibly make "aliens"
' chase your player. It even has a 2-screens-in-size arena and can
' handle upto 50 "monsters" (slows down though).
'
' Stick a joystick in the usual port and see what you think. Hmmmm....
'
'
'
'
Dim EX(50),EY(50)
Global EX(),EY(),NUMBER_OF_ALIENS,I,CEN
_GET_BOBS
Screen Open 0,640,256,8,Lowres : Curs Off : Flash Off : Hide On : Cls 0
Default Palette 0,0,0,0,0,0,0,0
Screen 0 : Screen Display 0,,,320,256
Ink 2 : Box 0,0 To 639,255
X=50 : Y=50 : CEN=1
NUMBER_OF_ALIENS=20
Synchro Off
Hot Spot 1,4,4
Autoback 0
Double Buffer
Auto View On
View
_GET_ENEMIES
Fade 1,$0,$FFF,$F00,$F0,$F,0,0,0
'
' MAIN ROUTINE
'
GO_FOR_IT:
Repeat
KG:
Bob 1,X,Y,1
Gosub MALIEN
If Joy(1)>0
Gosub MALIEN
If Jup(1) : DR=1 : Gosub GOIT : End If
If Jright(1) : DR=2 : Gosub GOIT : End If
If Jdown(1) : DR=3 : Gosub GOIT : End If
If Jleft(1) : DR=4 : Gosub GOIT : End If
End If
Goto KG
GOIT:
If DR=1 : Dec Y : End If
If DR=2 : Inc X : If X>150 : Inc XOFF : Gosub UPD : End If : End If
If DR=3 : Inc Y : End If
If DR=4 : Dec X : If X<490 : Dec XOFF : Gosub UPD : End If : End If
If X<4 : X=4 : End If
If X>640-4 : X=640-4 : End If
If Y<4 : Y=4 : End If
If Y>256-4 : Y=256-4 : End If
Return
Until DEAD=1
'
' MOVE THE SCREEN
'
UPD:
If XOFF<0 Then XOFF=0
If XOFF>320 : XOFF=320 : End If
If YOFF<0 Then YOFF=0
If YOFF>264 : YOFF=264 : End If
Screen Offset 0,XOFF,YOFF
Return
MALIEN:
R=Rnd(5)
If R=1 : Goto SK : End If
If EX(CEN)<X : Inc EX(CEN) : End If
If EX(CEN)>X : Dec EX(CEN) : End If
SK:
If EY(CEN)<Y : Inc EY(CEN) : End If
If EY(CEN)>Y : Dec EY(CEN) : End If
Bob CEN+1,EX(CEN),EY(CEN),
Inc CEN
If CEN>NUMBER_OF_ALIENS : CEN=1 : End If
Return
Procedure _GET_BOBS
Auto View Off
Screen Open 0,320,256,8,Lowres : Curs Off : Flash Off : Hide On : Cls 0
Cls 0
Ink 1,0
Text 0,5,"*"
Get Bob 1,0,0 To 8,8
Cls 0
For I=2 To 30
Ink 3,0
Text 0,5,Chr$(Rnd(30)+90)
Get Bob I,0,0 To 8,8
Next I
End Proc
Procedure _GET_ENEMIES
For I=1 To NUMBER_OF_ALIENS
EX(I)=Rnd(600)+30
EY(I)=Rnd(200)+40
Bob I+1,EX(I),EY(I),I+1
Wait Vbl
Next I
End Proc